home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 May: Tool Chest / Developer CD Series May 1996 (Tool Chest) (Apple Computer) (1996).iso / Tool Chest / Devices / Apple Color OneScanner / interfaces / ScIntf.p < prev   
Encoding:
Text File  |  1992-11-27  |  9.3 KB  |  345 lines  |  [TEXT/MPS ]

  1. (*================================================================================     *)
  2. (*     ScIntf.p - Pascal Interface declaration to the Scanner Driver Interface Library *)
  3. (*                                                                                    *)
  4. (*    Written by  Tad Browne, PSAP        Created: 20-FEB-88                            *)
  5. (*                                                                                    *)
  6. (*    Copyright Apple Computer, 1988,1989,1990                                        *)
  7. (*_____________________________________________________________________________        *)
  8. (*                                                                                    *)
  9. (* Modification History:                                                              *)
  10. (*                                                                                    *)
  11. (*    15-OCT-89 -    Tad Browne                                                            *)
  12. (*    Added new definitions to support Apple 8-bit Scanner:                            *)
  13. (*        1) Changed Reserved field of ScCompRec to startResolution and                 *)
  14. (*            endResolution to support resolutions in 1 dpi increments                *)
  15. (*        2) Changed downLoadFlags in scAdvFeaturesRec to downLoadStart,                *)
  16. (*            downLoadEnd, and downLoadFlags to support download patterns                *)
  17. (*            other than square, and sizes up to 127 X 127;                            *)
  18. (*    03-APR-90 -    Tad Browne                                                            *)
  19. (*     Added new advanced feature to support Apple 8-bit Scanner:                        *)
  20. (*        1) ScSetFastMode (Fast Scan Mode)                                            *)
  21. (*        2) Vendor Unique Call (ScVendorUnique)                                        *)
  22. (*    14-OCT-90 -    Tad Browne                                                            *)
  23. (*        Added ScSetLed, ScGetButton, ScResetButton, ScSetNoCal calls                *)
  24. (*    12-NOV-90 -    Tad Browne                                                            *)
  25. (*        Changed ScSetFastMode to ScSetSpeed, added new constants for ScSetSpeed        *)
  26. (*        Added constants for Vendor Unique Parameter Types                            *)
  27. (*    17-Dec-91 - Steve Bischoff                                                        *)
  28. (*        Added scFullColor and scBiLevelColor composition support                     *)
  29. (*                                                                                    *)
  30. (*================================================================================    *)
  31.  
  32.  
  33. (* Standard Constants *)
  34.  
  35. UNIT ScIntf;
  36.  
  37. INTERFACE
  38.  
  39.     CONST
  40.         scLineArt = 0;
  41.         scHalfTone = 1;
  42.         scGrayScale = 2;
  43.         scBiLevelColor = 3;
  44.         scFullColor = 4;
  45.  
  46. (* Standard Data Types *)
  47.  
  48.     TYPE
  49.         ScCompRec = PACKED RECORD
  50.                 brightnessRange: Byte;                (* NEW 2.0 *)
  51.                 contrastRange: Byte;                (* NEW 2.0 *)
  52.                 reserved : Byte;                    (* NEW 2.0 *)
  53.                 resFlags : Byte;                    (* NEW 2.0 *)
  54.                 resElements : INTEGER;
  55.                 halfToneElements : INTEGER;
  56.                 brightnessMax : INTEGER;
  57.                 contrastMax : INTEGER;
  58.                 bitsPerPixel : LongInt;
  59.                 minReadSize : INTEGER;
  60.             END;
  61.  
  62.         ScStdFeaturesPtr = ^ScStdFeaturesRec;
  63.         ScStdFeaturesRec = RECORD
  64.                 scannerType : ResType;
  65.                 version : INTEGER;
  66.                 scanWidthNum : INTEGER;
  67.                 scanWidthDen : INTEGER;
  68.                 scanLengthNum : INTEGER;
  69.                 scanLengthDen : INTEGER;
  70.                 composition : ARRAY[scLineArt..scFullColor] OF ScCompRec;
  71.             END;
  72.  
  73.         ScResPtr = ^scResArray;
  74.         ScResArray = ARRAY[1..1] OF INTEGER;
  75.  
  76.         String31 = STRING[31];
  77.         ScHalfTonePtr = ^ScHalfToneArray;
  78.         ScHalfToneArray = ARRAY[1..1] OF String31;
  79.  
  80.  
  81.         ScAreaRec = RECORD
  82.                 reserved : LongInt;
  83.                 xDpi : INTEGER;
  84.                 yDpi : INTEGER;
  85.                 scanRect : Rect;
  86.                 brightness : INTEGER;
  87.                 contrast : INTEGER;
  88.                 composition : SignedByte;
  89.                 bitsPerPixel : SignedByte;
  90.                 halfTone : INTEGER;
  91.             END;
  92.  
  93.         ScScanAreaPtr = ^ScScanAreaRec;
  94.         ScScanAreaRec = RECORD
  95.                 reserved : LongInt;
  96.                 numAreas : INTEGER;
  97.                 scanAreas : ARRAY[1..1] OF ScAreaRec;
  98.             END;
  99.  
  100.  
  101. (* Standard Routines *)
  102.  
  103.     FUNCTION ScOpen (VAR refNum : INTEGER) : OSErr;
  104.     FUNCTION ScClose (refNum : INTEGER) : OSErr;
  105.     FUNCTION ScGetStdFeatures (refNum : INTEGER;
  106.                                     stdFeaturesPtr : ScStdFeaturesPtr;
  107.                                     length : INTEGER) : OSErr;
  108.     FUNCTION ScGetRes (refNum : INTEGER;
  109.                                     compType : INTEGER;
  110.                                     resPtr : ScResPtr) : OSErr;
  111.     FUNCTION ScGetHalfTones (refNum : INTEGER;
  112.                                     compType : INTEGER;
  113.                                     halfTonePtr : ScHalfTonePtr) : OSErr;
  114.     FUNCTION ScSetScanArea (refNum : INTEGER;
  115.                                     scanAreaPtr : ScScanAreaPtr) : OSErr;
  116.     FUNCTION ScDoScan (refNum : INTEGER;
  117.                                     buffer : Ptr;
  118.                                     VAR count : LONGINT;
  119.                                     unused : INTEGER;
  120.                                     byteWidth, rowBytes : INTEGER) : OSErr;
  121.     FUNCTION ScAbortScan (refNum : INTEGER) : OSErr;
  122.  
  123.  
  124.  
  125. (* Advanced Constants *)
  126.  
  127.     CONST
  128.         scLightDetail = 0;    { GrayMap 0 }
  129.         scNormalDetail = 1;    { GrayMap 1 }
  130.         scDarkDetail = 2;    { GrayMap 2 }
  131.  
  132.         scSpeedNormal = 0;    { NORMAL Speed, slow with handshaking }
  133.         scSpeedHigh = 1;    { HIGH Speed, fast with handshaking }
  134.         scSpeedFast = 2;    { FAST Speed, fast without handshaking }
  135.  
  136. (* Apple (Vendor) Unique  Param Type Constants *)
  137.  
  138.         scUniqueUnpark = 0;    { Unpark the the carriage }
  139.         scUniquePark = 1;    { Park the the carriage }
  140.         scUniqueAbsPos = 2;    { Abosolute carriage positioning }
  141.         scUniqueRelPos = 3;    { Relative carriage positioning}
  142.         scUniqueSetID = 4;  { Set Scanner Driver SCSI ID }
  143.         scUniqueSetCRAM = 5;{ Set CRAM Data (always 2550 bytes) }
  144.         scUniqueGetCRAM = 6;{ Get CRAM Data (always 2550 bytes) }
  145.  
  146. (* Advanced Feature Flags *)
  147.  
  148. (* Download flags *)
  149.         sc2x2Matrixfl =    $00000001;
  150.         sc3x3Matrixfl =    $00000002;
  151.         sc4x4Matrixfl =    $00000004;
  152.         sc5x5Matrixfl =    $00000008;
  153.         sc6x6Matrixfl =    $00000010;
  154.         sc7x7Matrixfl =    $00000020;
  155.         sc8x8Matrixfl =    $00000040;
  156.  
  157. (* Restrict flags *)
  158.         scDiffXandYDPIfl=$00000001;
  159.         scSecondAreafl =$00000002;
  160.         scDiffXandYHTfl =$00000004; 
  161.  
  162. (* Control flags *)
  163.         scSetGroup3fl =    $00000001;
  164.         scSetGammafl =    $00000002;
  165.         scSetThresholdfl=$00000004;
  166.         scSetLampOnfl =    $00000008;
  167.         scSetNoHomefl =    $00000010;
  168.         scSetWaitfl =    $00000020;
  169.         scSetSpeedfl =    $00000040;
  170.         scSetLedfl =    $00000080;
  171.         scGetButtonfl = $00000100;
  172.         setNoCalfl =    $00000200;
  173.         scLoadGammafl =    $00000400;
  174.         scMatrixMulfl =    $00000800;
  175.         scInvertfl =    $00001000;
  176.         scSetAtoDfl =    $00002000;
  177.         scSensorSelectfl=$00004000;
  178.  
  179.         scAllSensors =    $00;
  180.         scRedSensor    =    $01;
  181.         scGreenSensor =    $02;
  182.         scBlueSensor =    $03;
  183.  
  184. (* Advanced Data Types *)
  185.  
  186.  
  187.     TYPE
  188.         ScAdvFeaturesPtr = ^ScAdvFeaturesRec;
  189.         ScAdvFeaturesRec = RECORD
  190.                 reserved : LongInt;
  191.                 version : INTEGER;
  192.                 secondaryMax : INTEGER;
  193.                 downLoadFlags : LongInt;
  194.                 restrictFlags : LongInt;
  195.                 controlFlags : LongInt;
  196.             END;
  197.  
  198.         ScPatPtr = ^ScPatRec;
  199.         ScPatRec = PACKED RECORD
  200.                 xDimension : Byte;
  201.                 yDimension : Byte;
  202.                 patData : PACKED ARRAY[1..64] OF Byte;    (* NEW SIZE *)
  203.             END;
  204.  
  205.         ScGammaTablePtr = ^ScGammaTableRec;
  206.         ScGammaTableRec = PACKED RECORD
  207.                 RedGamma : PACKED ARRAY[1..256] of Byte;
  208.                 GreenGamma : PACKED ARRAY[1..256] of Byte;
  209.                 BlueGamma : PACKED ARRAY[1..256] of Byte;
  210.             END;
  211.             
  212.         ScMatrixPtr = ^ScMatrix;
  213.         ScMatrix = PACKED RECORD
  214.             matrix : ARRAY[1..9] of INTEGER;
  215.         END;
  216.         
  217. (* Advanced Routines *)
  218.  
  219.     FUNCTION ScGetAdvFeatures (refNum : INTEGER;
  220.                                     advFeaturesPtr : ScAdvFeaturesPtr;
  221.                                     length : integer) : OSErr;
  222.     FUNCTION ScSetHTPattern (refNum : INTEGER;
  223.                                     patPtr : ScPatPtr) : OSErr;
  224.     FUNCTION ScSetGroup3 (refNum : INTEGER;
  225.                                     compressOn : Boolean) : OSErr;
  226.     FUNCTION ScSetNoHome (refNum : INTEGER;
  227.                                     noHome : Boolean) : OSErr;
  228.     FUNCTION ScSetLamp (refNum : INTEGER;
  229.                                     lampOn : Boolean) : OSErr;
  230.     FUNCTION ScSetGrayMap (refNum : INTEGER;
  231.                                     grayMap : INTEGER) : OSErr;
  232.     FUNCTION ScSetThreshold (refNum : INTEGER;
  233.                                     thesholdLevel : INTEGER) : OSErr;
  234.     FUNCTION ScSetWaitButton (refNum : INTEGER;
  235.                                     waitButton : BOOLEAN) : OSErr;
  236.                                     
  237.     (* NEW 2.0 *)
  238.     
  239.     FUNCTION ScSetSpeed (refNum : INTEGER;
  240.                                     speed : INTEGER) : OSErr;
  241.     FUNCTION ScSetLed (refNum : INTEGER;
  242.                                     ledOn : BOOLEAN) : OSErr;
  243.     FUNCTION ScResetButton(refNum : INTEGER;
  244.                                     setTrue : BOOLEAN) : OSErr;
  245.     FUNCTION ScGetButton(refNum : INTEGER;
  246.                                     VAR button : BOOLEAN) : OSErr;
  247.     FUNCTION ScSetNoCal(refNum : INTEGER;
  248.                                     noCalMode : BOOLEAN) : OSErr;
  249.     FUNCTION ScSetCal(refNum : INTEGER;
  250.                                     calPtr : Ptr;
  251.                                     length : integer) : OSErr;
  252.     FUNCTION ScGetCal(refNum : INTEGER;
  253.                                     calPtr : Ptr;
  254.                                     length : integer) : OSErr;
  255.     FUNCTION ScVendorUnique (refNum : INTEGER;
  256.                                      paramType : INTEGER; paramPtr : Ptr) : OSErr;
  257.     FUNCTION ScInvertPixels (refNum : INTEGER;
  258.                                     invert : BOOLEAN) : OSErr;
  259.     FUNCTION ScSensorSelect (refNum : INTEGER;
  260.                                     sensor : INTEGER) : OSErr;
  261.     FUNCTION ScSetScannerAtoD (refNum : INTEGER;
  262.                                     vrt,vrb : Byte) : OSErr;
  263.     FUNCTION ScLoadGamma(refNum : INTEGER;
  264.                                     gammaPtr : ScGammaTablePtr) : OSErr;
  265.     FUNCTION ScLoadMatrix(refNum : INTEGER;
  266.                                     matrixPtr : ScMatrixPtr) : OSErr;
  267.  
  268. (* Error Codes for Scanner *)
  269.  
  270. CONST
  271.     scNotFoundErr = -17064;
  272.     scComErr = -17065;
  273.     scResetErr = -17066;
  274.     scParamErr = -17067;
  275.     scScannerErr = -17068;
  276.     scLampErr = -17069;
  277.     scEOS = -17070;
  278.     scDimLampErr = -17071;
  279.     scBusy = -17072;
  280.  
  281. IMPLEMENTATION
  282.     FUNCTION ScOpen;
  283.     external;
  284.     FUNCTION ScClose;
  285.     external;
  286.     FUNCTION ScGetStdFeatures;
  287.     external;
  288.     FUNCTION ScGetRes;
  289.     external;
  290.     FUNCTION ScGetHalfTones;
  291.     external;
  292.     FUNCTION ScSetScanArea;
  293.     external;
  294.     FUNCTION ScDoScan;
  295.     external;
  296.     FUNCTION ScAbortScan;
  297.     external;
  298.  
  299.     FUNCTION ScGetAdvFeatures;
  300.     external;
  301.     FUNCTION ScSetHTPattern;
  302.     external;
  303.     FUNCTION ScSetGroup3;
  304.     external;
  305.     FUNCTION ScSetNoHome;
  306.     external;
  307.     FUNCTION ScSetLamp;
  308.     external;
  309.     FUNCTION ScSetGrayMap;
  310.     external;
  311.     FUNCTION ScSetThreshold;
  312.     external;
  313.     FUNCTION ScSetWaitButton;
  314.     external;
  315.     
  316.     (* NEW 2.0 *)
  317.     FUNCTION ScSetSpeed;
  318.     external;
  319.     FUNCTION ScSetLed;
  320.     external;
  321.     FUNCTION ScResetButton;
  322.     external;
  323.     FUNCTION ScGetButton;
  324.     external;
  325.     FUNCTION ScSetNoCal;
  326.     external;
  327.     FUNCTION ScSetCal;
  328.     external;
  329.     FUNCTION ScGetCal;
  330.     external;
  331.     FUNCTION ScVendorUnique;
  332.     external;
  333.  
  334.     (* NEW 3.0 *)
  335.     FUNCTION ScInvertPixels;
  336.     external;
  337.     FUNCTION ScSensorSelect;
  338.     external;
  339.     FUNCTION ScLoadGamma;
  340.     external;
  341.     FUNCTION ScLoadMatrix;
  342.     external;
  343.     FUNCTION ScSetScannerAtoD
  344.     external;
  345. END.